<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>

//【示例1】简单的表达式就是一个直接量、常量或变量。
1							// 数值直接量，计算之后返回值为数值1
"string"					// 字符串直接量，计算之后返回值为字符串"string"
false						// 布尔直接量，计算之后返回值为布尔值false
null						// null直接量，计算之后返回值为直接量null
/regexp/					// 正则表达式直接量，计算之后返回值为正则表达式自身
{a:1,b:"1"}					// 对象直接量，计算之后返回值为对象自身
[1,"1"]						// 数组直接量，计算之后返回值为数组自身
function(a,b){return a+b}	// 函数直接量，计算之后返回值为函数自身
a							// 变量，计算之后返回值为变量存储的值
//【示例2】对于下面这个复杂表达式，可能会让人迷惑：
(a + b > c && a - b < c || a > b > c)

((a + b > c) && ((a - b < c) || (a > b > c)))
//【示例3】设计一个表达式，筛选学龄人群。如果使用表达式来描述就是年龄大于等于6岁，且小于18岁的人：
if(age >= 6 && age < 18){
   // 学龄期行为
}

if(age >= 6 && age < 18 || age >= 65){
   // 所有弱势年龄人群行为
}

if((age >= 6 && age < 18) || age >= 65){
   // 所有弱势年龄人群行为
}
//【示例4】表达式的另一个难点就是布尔型表达式的重叠所带来的理解障碍。

if !(!isA || !isB) {
    // 真真假假迷惑人
}

( ! isA || ! isB) = ! (isA && isB)
( ! isA && ! isB) = ! (isA || isB)
//【示例5】?:运算符在函数式编程中使用频率比较高。但是这种连续思维不容易阅读。这时可以使用if语句对?:运算符表达式进行分解。

var a.b = new c(a.d ? a.e(1) : a.f(1))

if(a.d){
   var a.b = new c(a.e(1));
}else{
   var a.b = new c(a.f(0));
}



</script>
</head>
<body>




</body>
</html>
